package com.glor.operation.common.utils;

import com.glor.operation.common.dto.PageDTO;
import org.springframework.data.domain.Page;

/**
 * Created by heylear.cai on 2016/2/18.
 */
public class PageUtils {

    public static <E, DTO> PageDTO<DTO> fromPage(Page<E> page, Class<DTO> cls) {

        PageDTO<DTO> pageDTO = new PageDTO<>();

        pageDTO.setHasNext(page.hasNext());

        pageDTO.setHasPrevious(page.hasPrevious());

        pageDTO.setTotalPages(page.getTotalPages());

        pageDTO.setTotalRows(page.getTotalElements());

        pageDTO.setPageSize(page.getNumberOfElements());

        pageDTO.setPageNum(page.getNumber());

        pageDTO.setPageList(BeanUtils.copyAll(page.getContent(),cls));

        return pageDTO;
    }
}
